From 9d9af7dca878fb6f85ddf3cf3cb43df273f6b5a0 Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Fri, 14 Jan 2011 14:18:31 +0000 Subject: [PATCH] x86 acpi: Fix crash in enable_nonboot_cpus() on wakeup from S3/S4 Bringing a CPU back online can require RCU work to be flushed, because the per-cpu data from last time the CPU was online may not yet be deallocated. Use the new rcu_barrier() interface function to achieve this. Signed-off-by: Keir Fraser --- xen/arch/x86/acpi/power.c | 1 + 1 file changed, 1 insertion(+) diff --git a/xen/arch/x86/acpi/power.c b/xen/arch/x86/acpi/power.c index b4a633d544..5dfdeb431f 100644 --- a/xen/arch/x86/acpi/power.c +++ b/xen/arch/x86/acpi/power.c @@ -206,6 +206,7 @@ static int enter_state(u32 state) enable_cpu: cpufreq_add_cpu(0); microcode_resume_cpu(0); + rcu_barrier(); mtrr_aps_sync_begin(); enable_nonboot_cpus(); mtrr_aps_sync_end(); -- 2.30.2